import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { HttpModule } from '@angular/http';
import { HttpClientModule } from '@angular/common/http';
import { JsonpModule } from '@angular/http';
import * as $ from 'jquery';
import { AppComponent } from './app.component';
import { LoginComponent } from './login/login.component';

import { AppRoutingModule } from './app-routing.module';
import { HeaderComponent } from './header/header.component'
import { FormsModule, ReactiveFormsModule  } from '@angular/forms';
import { IndexComponent } from './index/index.component';
import { FooterComponent } from './footer/footer.component';
import { DefaultComponent } from './index/default/default.component';
import { MoniterComponent } from './index/moniter/moniter.component';
import { ChartsModule } from 'ng2-charts';
import { WbsocketService } from './share/wbsocket.service';
import { DeviceService } from './share/device.service';
import { DateOptionService } from './share/date-option.service'
import { EchartsNg2Module } from 'echarts-ng2';
import { EventComponent } from './index/default/event/event.component';
import { LeftNavComponent } from './index/moniter/left-nav/left-nav.component';
import { ContentHeaderComponent } from './index/moniter/content-header/content-header.component';
import { ContentTabComponent } from './index/moniter/content-tab/content-tab.component';
import { EnergyQueryComponent } from './index/moniter/energy-query/energy-query.component';
import { DataQueryComponent } from './index/moniter/data-query/data-query.component';
import { HarmonicQueryComponent } from './index/moniter/harmonic-query/harmonic-query.component';
import { IndicateQueryComponent } from './index/moniter/indicate-query/indicate-query.component';
import { NKDatetimeModule } from 'ng2-datetime/ng2-datetime';
import { ChartDataFilterPipe } from './share/chart-data-filter.pipe';
import { Code404Component } from './code404/code404.component';
import { NoDataComponent } from './no-data/no-data.component';
import { TimeTypeComponent } from './time-type/time-type.component';
import { MyDatePickerModule } from 'mydatepicker';
import { RateComponent } from './index/moniter/rate/rate.component';
import { TimePickerComponent } from './time-picker/time-picker.component';
import { ListComponent } from './list/list.component';
import { DataTypePipe } from './pipe/data-type.pipe';

@NgModule({
  declarations: [
    AppComponent,
    LoginComponent,
    HeaderComponent,
    IndexComponent,
    FooterComponent,
    DefaultComponent,
    MoniterComponent,
    EventComponent,
    LeftNavComponent,
    ContentHeaderComponent,
    ContentTabComponent,
    EnergyQueryComponent,
    DataQueryComponent,
    HarmonicQueryComponent,
    IndicateQueryComponent,
    ChartDataFilterPipe,
    Code404Component,
    NoDataComponent,
    TimeTypeComponent,
    RateComponent,
    TimePickerComponent,
    ListComponent,
    DataTypePipe
  ],
  imports: [
    BrowserModule,
    MyDatePickerModule,
    AppRoutingModule,
    FormsModule,
    ReactiveFormsModule,
    ChartsModule,
    EchartsNg2Module,
    NKDatetimeModule,
    HttpModule,
    HttpClientModule,
    JsonpModule
  ],
  providers: [WbsocketService, DeviceService, DateOptionService],
  bootstrap: [AppComponent]
})
export class AppModule { }
